1. Technical Field
The present invention relates to computer systems, and more particularly to an automated system for generating an interface between computer programs in different programming languages and operating in different environments.
2. Prior Art
The trend in computing is towards systems which support multiple program environments. The support of multiple program environments provides a flexible computing platform. For example, computer programming languages supported by personal IBM compatible computers include JAVA, C.sup.++, C, PASCAL, FORTRAN, COBOL, and BASIC running on DOS or OS/2 operating systems. Another trend in computer systems is the implementation of distributed computing systems. Distributed computing comprises a client-server model in which a client program and a server program run, and typically the client and the server execute on different systems in the computer network.
As computer systems become more open and flexible, the variety of program environments makes the sharing of information difficult. Associated with the addition of each program environment is a new way of handling data. In the context of COBOL, accessing existing or legacy COBOL on a mainframe or networked computer is typically performed through CICS (Customer Information Control System) transactions. In order to remotely access the COBOL program from another computer environment such as C.sup.++ or JAVA requires the programmer to perform three tedious and time consuming tasks. First, the programmer must establish a mapping between the other language types and the COBOL data types. Second, the programmer must translate the data and semantics of the other language to the corresponding COBOL data type. This problem is compounded by the fact that the interaction of CICS programs is foreign to most JAVA users who are most familiar with components. In addition, the COBOL data must be formatted according to the alignment rules of COBOL so that the CICS transaction recognizes the data being passed. Third, the data passed between the two machines (i.e. computing environments) must be translated to the format of the target machine. In practical terms this means that a codepage translation must be done and native data such as floating point and integer data must be translated to the format of the target machine. The translation of the data must be performed in both directions, i.e. the call of the CICS transaction from the target machine, and the return to the CICS transaction from the target machine.